﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LEARNREN.COM.UI.LabelProviders
{
    static class LabelFactory
    {
        public static ILabelProvider Get(string label)
        {
            if (string.IsNullOrEmpty(label))
            {
                throw new ArgumentNullException("要解析的标签为空");
            }

            ILabelProvider result = null;
            string prefix = LabelProviderHelper.GetLowerPrefix(label);

            switch (prefix)
            {
                case "lr_nm":
                    // 主导航
                    result = new NMLabel(label);
                    break;
                case "lr_nc":
                    // 面包屑导航
                    result = new NCLabel(label);
                    break;
                case "lr_ctc":
                    // 子栏目列表
                    result = new CTCLabel(label);
                    break;
                case "lr_ctl":
                    // 子栏目列表
                    result = new CTLLabel(label);
                    break;
                case "lr_ctp":
                    // 当前栏目属性
                    result = new CTPLabel(label);
                    break;
                case "lr_atl":
                    // 文章列表标签
                    result = new ATLLabel(label);
                    break;
                case "lr_atp":
                    // 文章属性标签
                    result = new ATPLabel(label);
                    break;
                case "lr_pdl":
                    // 产品列表
                    result = new PDLLabel(label);
                    break;
                case "lr_pdp":
                    // 产品属性
                    result = new PDPLabel(label);
                    break;
                case "lr_pjl":
                    // 案例列表
                    result = new PJLLabel(label);
                    break;
                case "lr_pjp":
                    // 案例属性
                    result = new PJPLabel(label);
                    break;
                case "lr_cs":
                    // 用户自定义标签
                    result = new CSLabel(label);
                    break;
                case "lr_msgl":
                    // 留言列表标签
                    result = new MSGLLabel(label);
                    break;
                case "lr_msgp":
                    // 留言属性标签
                    result = new MSGPLabel(label);
                    break;
                case "lr_banner":
                    // 幻灯片标签
                    result = new SlideLabel(label);
                    break;
                case "lr_sgp":
                    // 单页面属性
                    result = new SGPLabel(label);
                    break;
                case "lr_jbl":
                    // 招聘列表
                    result = new JBLLabel(label);
                    break;
                case "lr_jbp":
                    // 招聘属性
                    result = new JBPLabel(label);
                    break;
                case "lr_sc":
                    // 站点设置
                    result = new SCLabel(label);
                    break;
                case "lr_include":
                    // 站点设置
                    result = new IncludeLabel(label);
                    break;                    
                case "lr_tmpdir":
                    // 模板所在文件夹
                    result = new TMPDIRLabel(label);
                    break;
                default:
                    break;
            }

            return result;
        }
    }
}
